/* 
 * File:   main.cpp
 * Author: eduardo
 * Author: joseluis
 * Created on 31 de octubre de 2012, 20:40
 */

#include <cstdlib>
#include <iostream>
#include <algorithm>
#include "DocTerms.h"
#include "StopClass.h"
#include "Lex.h"
#include "InvertedFile.h"
#include "AgentDB.h"
#include "Question.h"

#include <dirent.h> 
#include <sys/types.h>
#include <sys/stat.h>

using namespace std;

int main(int argc, char** argv) {

    InvertedFile* IF = new InvertedFile();
    DocTerms* index = new DocTerms();

    DIR* pDir;
    struct dirent *pdInfo;
    vector<string> docs;

    if ((pDir = opendir("./docs"))) {
        /* Buscar archivos para procesar */
        while ((pdInfo = readdir(pDir))) {
            if (pdInfo->d_name[0] != '.') {
                docs.push_back(pdInfo->d_name);
            }
        }
    } else {
        /* Ocurrió un error y no se pudo acceder al directorio */
        cout << "Error abriendo directorio." << endl;
    }

    closedir(pDir);

    AgentDB::getAgentePtr()->create_database(argc, argv);
    /*
            cout << "Indexando documentos..." << endl;
            for (int i = 0; i < docs.size(); i++) {
                index = analyze("docs/" + docs[i]);
                IF->addDoc(index, docs[i]);
                //if (IF->getDictSize() >= 9000) IF->toPersist();
            }
            //if (IF->getDictSize() >= 1) IF->toPersist();
            cout << "Indexación terminada." << endl;
            cout << "Tamaño: " << IF->getDictSize() << endl;
     */
    Question* q = new Question();
    q->makeQuestion("emacs unix");

    return 0;
}

